        Objective Caml version 3.11.0

# #let compare a b = match a with
   a>b -> 1
  |a=b -> 0
  |a<b -> -1;;
      Characters 1-4:
  #let compare a b = match a with
   ^^^
Error: Syntax error
# let compare a b = match a with
   a>b -> 1
  |a=b -> 0
  |a<b -> -1;;
      Characters 35-36:
     a>b -> 1
      ^
Error: Syntax error
# let compare a b = match a with
   a > b -> 1
  |a = b -> 0
  |a < b -> -1;;
      Characters 36-37:
     a > b -> 1
       ^
Error: Syntax error
# let compare a b = match a with
   a > b -> 1
  |a = b -> 0
  |a < b -> -1;;
      Characters 36-37:
     a > b -> 1
       ^
Error: Syntax error
# #let compare a b = match a with
   a when  a > b -> 1
  |awhen a = b -> 0
  |a when a < b -> -1;;
      Characters 1-4:
  #let compare a b = match a with
   ^^^
Error: Syntax error
#let compare a b = match a with
   a when  a > b -> 1
  |awhen a = b -> 0
  |a when a < b -> -1;; #let compare a b = match a with
   a when  a > b -> 1
  |awhen a = b -> 0
  |a when a < b -> -1;;
      Characters 1-4:
  #let compare a b = match a with
   ^^^
Error: Syntax error
#let compare a b = match a with
   a when  a > b -> 1
  |awhen a = b -> 0
  |a when a < b -> -1;;
      Characters 1-4:
  #let compare a b = match a with
   ^^^
Error: Syntax error
#               Characters 20-21:
        Characters 1-4:
                      ^
Error: Syntax error
# let compare a b = match a with
   a when  a > b -> 1
  |awhen a = b -> 0
  |a when a < b -> -1;;
      Characters 62-63:
    |awhen a = b -> 0
           ^
Error: Syntax error
#let compare a b = match a with
   a when  a > b -> 1
  |a when a = b -> 0
  |a when a < b -> -1;;
      Characters 1-4:
  #let compare a b = match a with
   ^^^
Error: Syntax error
# let compare a b = match a with
   a when  a > b -> 1
  |a when a = b -> 0
  |a when a < b -> -1;;
      Characters 18-95:
  ..................match a with
     a when  a > b -> 1
    |a when a = b -> 0
    |a when a < b -> -1..
Warning X: bad style, all clauses in this pattern-matching are guarded.
val compare : 'a -> 'a -> int = <fun>
# let compare a b = match a with
   a when  a > b -> 1
  | a = b -> 0
  | a < b -> -1;;
      Characters 59-60:
    | a = b -> 0
        ^
Error: Syntax error
# let compare a b = match a with
   when  a > b -> 1
  | a = b -> 0
  | a < b -> -1;;
      Characters 34-38:
     when  a > b -> 1
     ^^^^
Error: Syntax error
# let compare a b = match a with when a (
    a > b -> 1
  | a = b -> 0
  | a < b -> -1
) ;;
        Characters 31-35:
  let compare a b = match a with when a (
                                 ^^^^
Error: Syntax error
# let compare a b = match a with when a (
    a > b -> 1
  | a = b -> 0
  | a < b -> -1
) ;;
        Characters 31-35:
  let compare a b = match a with when a (
                                 ^^^^
Error: Syntax error
# let compare a b = match a with a  when (
    a > b -> 1
  | a = b -> 0
  | a < b -> -1
) ;;
        Characters 39-40:
  let compare a b = match a with a  when (
                                         ^
Syntax error: ')' expected, the highlighted '(' might be unmatched
# let compare a b = match a with a  when 
    a > b -> 1
  | a = b -> 0
  | a < b -> -1) ;;
      Characters 61-62:
    | a = b -> 0
        ^
Error: Syntax error
# String.lowercase "BLA";;
- : string = "bla"
# let l = [("Don",435.);("Nut",75.);("Toto",42.);;
Characters 46-48:
  let l = [("Don",435.);("Nut",75.);("Toto",42.);;
                                                ^^
Error: Syntax error
# let l = [("Don",435.);("Nut",75.);("Toto",42.)];;
val l : (string * float) list = [("Don", 435.); ("Nut", 75.); ("Toto", 42.)]
#let rec  find x l = match l with 
    []->failwith "introuvable"
  | (a,b)::l -> if e=a then b
    else find l;;
 let l = [("Don",435.);("Nut",75.);("Toto",42.)];;
val l : (string * float) list = [("Don", 435.); ("Nut", 75.); ("Toto", 42.)]
#let rec  find x l = match l with 
    []->failwith "introuvable"
  | (a,b)::l -> if e=a then b
    else find l;;

val l : (string * float) list = [("Don", 435.); ("Nut", 75.); ("Toto", 42.)]
#         Characters 0-3:
  val l : (string * float) list = [("Don", 435.); ("Nut", 75.); ("Toto", 42.)]
  ^^^
Error: Syntax error
# let rec  find x l = match l with 
    []->failwith "introuvable"
  | (a,b)::l -> if e=a then b
    else find l;;
  let rec  find x l = match l with 
    []->failwith "introuvable"
  | (a,b)::l -> if e=a then b
    else find l;;

      Characters 85-86:
    | (a,b)::l -> if e=a then b
                     ^
Error: Unbound value e
# let rec  find x l = match l with 
    []->failwith "introuvable"
  | (a,b)::l -> if a=x  then b
    else find l;;
  let rec  find x l = match l with 
    []->failwith "introuvable"
  | (a,b)::l -> if a=x  then b
    else find l;;

      Characters 111-112:
      else find l;;
                ^
Error: This expression has type ('a * 'b) list but is here used with type 'a
# let rec  find x y = match y with 
    []->failwith "introuvable"
  | (a,b)::l -> if a=x  then b
    else find l;;
  let rec  find x y = match y with 
    []->failwith "introuvable"
  | (a,b)::l -> if a=x  then b
    else find l;;

      Characters 111-112:
      else find l;;
                ^
Error: This expression has type ('a * 'b) list but is here used with type 'a
#let rec  find x y = match y with 
    []->failwith "introuvable"
  | (a,b)::l -> if a=x  then b
    else find l;;   let rec  find x y = match y with 
    []->failwith "introuvable"
  | (a,b)::l -> if a=x  then b
    else find l;;
  let rec  find x y = match y with 
    []->failwith "introuvable"
  | (a,b)::l -> if a=x  then b
    else find l;;

      Characters 111-112:
      else find l;;
                ^
Error: This expression has type ('a * 'b) list but is here used with type 'a
#let rec  find x y = match y with 
    []->failwith "introuvable"
  | (a,b)::l -> if a=x  then b
    else find l;;
      Characters 111-112:
      else find l;;
                ^
Error: This expression has type ('a * 'b) list but is here used with type 'a
#       Characters 112-113:
      else find l;;
                ^
Error: This expression has type ('a * 'b) list but is here used with type 'a
#     Characters 25-26:
        Characters 111-112:
                          ^
Error: Syntax error
#           Characters 16-17:
                  ^
                  ^
Error: Syntax error
# let rec  find x y = match y with 
    []->failwith "introuvable"
  | (a,b)::l -> if a=x  then b
    else find l;;
      Characters 110-111:
      else find l;;
                ^
Error: This expression has type ('a * 'b) list but is here used with type 'a
#let rec  find x y = match y with 
    []->failwith "introuvable"
  | (a,b)::y -> if a=x  then b
    else find y;; let rec  find x y = match y with 
    []->failwith "introuvable"
  | (a,b)::l -> if a=x  then b
    else find l;;
      Characters 110-111:
      else find l;;
                ^
Error: This expression has type ('a * 'b) list but is here used with type 'a
#let rec  find x y = match y with 
    []->failwith "introuvable"
  | (a,b)::y -> if a=x  then b
    else find y;;
      Characters 110-111:
      else find l;;
                ^
Error: This expression has type ('a * 'b) list but is here used with type 'a
#   Characters 24-25:
        Characters 110-111:
                          ^
Error: Syntax error
#           Characters 16-17:
                  ^
                  ^
Error: Syntax error
# let rec  find x y = match y with 
    []->failwith "introuvable"
  | (a,b)::y -> if a=x  then b
    else find y;;
      Characters 110-111:
      else find y;;
                ^
Error: This expression has type ('a * 'b) list but is here used with type 'a
# let rec  find x y = match y with 
    []->failwith "introuvable"
    |(a,b)::y -> if a=x  then b
    else find y;;
      Characters 111-112:
      else find y;;
                ^
Error: This expression has type ('a * 'b) list but is here used with type 'a
# let find x y = match y with
    [] -> failwith "introouvable"
  | (e1,e2)::l -> if e1=x then e2 else find l;;

    Characters 101-105:
    | (e1,e2)::l -> if e1=x then e2 else find l;;
                                         ^^^^
Error: Unbound value find
#let rec find x y = match y with
    [] -> failwith "introouvable"
  | (e1,e2)::l -> if e1=x then e2 else find l;;      let find x y = match y with
    [] -> failwith "introouvable"
  | (e1,e2)::l -> if e1=x then e2 else find l;;

    Characters 101-105:
    | (e1,e2)::l -> if e1=x then e2 else find l;;
                                         ^^^^
Error: Unbound value find
#let rec find x y = match y with
    [] -> failwith "introouvable"
  | (e1,e2)::l -> if e1=x then e2 else find l;;
    Characters 102-106:
    | (e1,e2)::l -> if e1=x then e2 else find l;;
                                         ^^^^
Error: Unbound value find
#     Characters 23-24:
      Characters 101-105:
                        ^
Error: Syntax error
#         Characters 41-45:
                                           ^^^^
                                           ^^^^
Error: Syntax error
# let rec find x y = match y with
    [] -> failwith "introouvable"
  | (e1,e2)::l -> if e1=x then e2 else find l;;
    Characters 110-111:
    | (e1,e2)::l -> if e1=x then e2 else find l;;
                                              ^
Error: This expression has type ('a * 'b) list but is here used with type 'a
# 